Flick to send or display content

ABSTRACT

In an embodiment, a flick motion is detected on a touch screen interface of a first device. In response to detecting the flick motion: data associated with the flick motion is identified and transmitted to a second device. The data may be automatically displayed in response to detecting the flick motion.

FIELD OF THE INVENTION

The present invention relates to the use of a flick motion.

BACKGROUND

The approaches described in this section are approaches that could bepursued, but not necessarily approaches that have been previouslyconceived or pursued. Therefore, unless otherwise indicated, it shouldnot be assumed that any of the approaches described in this sectionqualify as prior art merely by virtue of their inclusion in thissection.

Data may be shared by users by direct communication between two usersystems. For example, a user may compose an email, attach a file, andsend the file to another user. In another example, a user may uploaddata to a server from a user’s system and another user may download thedata from the server to the user’s system.

Data may also be shared by physically connecting a single user’s deviceto a display screen and displaying the data from the user’s device onthe display screen.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings and in whichlike reference numerals refer to similar elements and in which:

FIG. 1 is a block diagram illustrating an example system in accordancewith one or more embodiments;

FIG. 2 illustrates a flow diagram for detecting a flick motion inaccordance with one or more embodiments;

FIG. 3A, FIG. 3B, and FIG. 3C illustrate a flick motion in accordancewith one or more embodiments;

FIG. 3D illustrates an example screen shot in accordance with one ormore embodiments;

FIG. 3E illustrates an example packet in accordance with one or moreembodiments;

FIGS. 4 and 5 illustrate examples of direction-based selection of areceiving device in accordance with one or more embodiments; and

FIG. 6 shows a block diagram that illustrates a system upon which anembodiment of the invention may be implemented.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be apparent, however,that the present invention may be practiced without these specificdetails. In other instances, well-known structures and devices are shownin block diagram form in order to avoid unnecessarily obscuring thepresent invention.

Several features are described hereafter that can each be usedindependently of one another or with any combination of the otherfeatures. However, any individual feature might not address any of theproblems discussed above or might only address one of the problemsdiscussed above. Some of the problems discussed above might not be fullyaddressed by any of the features described herein. Although headings areprovided, information related to a particular heading, but not found inthe section having that heading, may also be found elsewhere in thespecification.

Example features are described according to the following outline 1.0OVERVIEW 2.0 SYSTEM ARCHITECTURE 3.0 DETECTING A FLICK MOTION 4.0TRANSMITTING CONTENT IN RESPONSE TO DETECTING A FLICK MOTION 5.0DISPLAYING CONTENT IN RESPONSE TO DETECTING A FLICK MOTION 6.0 EXAMPLEEMBODIMENTS 7.0 HARDWARE OVERVIEW 8.0 EXTENSIONS AND ALTERNATIVES

1.0 Overview

In an embodiment, a flick motion selecting content is detected on atouch screen interface of a device. In response to detecting the flickmotion, the device may send the flicked content or associated contentmay be identified and transmitted to a second device.

In an embodiment, content selected by a flick motion and transmitted toanother device may be automatically displayed. In a group setting manyusers may flick content to a shared resource where the flicked contentmay be queued for display or displayed upon receipt.

In an embodiment, detecting a flick may also include detecting specificdirections, speeds, acceleration, etc. of the flick which may then bematched to corresponding commands. For example, direction may be used toselect a particular recipient(s) of the flicked content.

Although specific components are recited herein as performing the methodsteps, in other embodiments agents or mechanisms acting on behalf of thespecified components may perform the method steps. Further, althoughsome aspects of the invention are discussed with respect to componentson a system, the invention may be implemented with componentsdistributed over multiple systems. Embodiments of the invention alsoinclude any system that includes the means for performing the methodsteps described herein. Embodiments of the invention also include acomputer readable medium with instructions, which when executed, causethe method steps described herein to be performed.

2.0 System Architecture

Although a specific computer architecture is described herein, otherembodiments of the invention are applicable to any architecture that canbe used to perform the functions described herein.

FIG. 1 is a block diagram illustrating an example system (100) inaccordance with one or more embodiments. The example system (100)includes one or more components that function as content sources, userinterface devices, display devices, and/or content management devices.Specific components are presented to clarify the functionalitiesdescribed herein and may not be necessary to implement one or moreembodiments. Each of these components are presented to clarify thefunctionalities described herein and may not be necessary to implementone or more embodiments. Furthermore, components not shown in FIG. 1 mayalso be used to perform the functionalities described herein.Functionalities described as performed by one component may instead beperformed by another component. A network bus (102) connecting allcomponents within the system (100) is shown for clarity. The network bus(102) may represent any local network, intranet, internet, etc. Thenetwork bus (102) may include wired and/or wireless segments. Allcomponents (shown as communicatively coupled) may not necessarily becommunicatively coupled to all other components within the system (100).An example system (100) may include one or more of: device A (110),device B (120), device C (130), shared display device (140), and server(150).

In an embodiment, the one or more features or functionalities asdescribed herein may be implemented by a software application. Thesoftware application may be preloaded on any device or downloaded andinstalled on a device. The software application may be configured tofunction as an add-on to another application or execute concurrentlywith another application. For example, the software application may bean input tool which detects flicks selecting content displayed byanother application.

In an embodiment, device A (110) generally represents any device whichmay be configured for detecting a flick motion as user input. A user(includes any operator of device A (110)) may perform a flick motiondetected by device A (110) by touching a particular spot on the touchscreen interface (115) of device A (110) with a finger (or any otheritem, e.g., a stylus), and sliding the finger away from the particularspot while maintaining contact with the touch screen interface (115) fora portion of the sliding action performed by the user and continuing thesliding action even after contact with the touch screen interface (115)has ended. Touching or making contact as referred to herein may includehovering over a touch screen interface (115) such that the touch screeninterface (115) detects the hovering. In a first example, the user mayrelease contact with the touch screen interface (115) while still movingthe finger in the direction of the sliding action even though additionalsurface area of the touch screen interface (115), in the direction ofthe sliding action, may be available to continue the sliding actionwhile maintaining contact. In another example, a flick action mayinvolve a user touching a particular spot on the touch screen interface(115) of device A (110) and then sliding the finger, while maintainingcontact with the touch screen interface (115), beyond the edge of thetouch screen interface (115). Accordingly, the user may maintain contactwith the touch screen interface (115) (e.g., with a finger) until thefinger reaches the edge of the touch screen interface (115) and continuea motion in the same direction past the edge of the touch screeninterface (115).

In an embodiment, an operator may use a flick motion to select contentor data. A visual representation of any data or content, from where theflick motion is initiated may be selected by the flick motion. Forexample, an operator may select a video using a flick motion by firsttouching a thumbnail or file name of the video and then sliding a fingeraway from the initial contact point. Content or data selected by a flickmotion may be referred to herein as flicked content.

In an embodiment, device A (110) may include a touch screen interface(115) configured to detect the flick motion described above. Device A(110) may be configured to detect a flick motion, a speed of a flickmotion, a direction of a flick motion, or a direction of the flickmotion with respect to items displayed on the touch screen interface(115) (e.g., flick motion toward a particular icon or other visualrepresentation of content, user, device, etc.). Detecting a flickmotion, as referred to herein, means detecting the portion of thesliding action by a user’s finger (or other item) in which contactbetween the finger and the touch screen interface (115) is maintained. Aflick motion may be distinguished from another sliding action by deviceA (110) based on, for example, the release of the contact between thefinger and the touch screen interface (115). Since a user performing aflick motion continues the sliding action after releasing contact withthe touch screen interface (115), there is no continuous maintainedcontact at a single position on the touch screen interface (115) beforecontact between a finger and the touch screen interface (115) isreleased. Based on this information, device A (110) detects that contactbetween a finger and the touch screen interface (115) was released asthe finger was still sliding.

In one example, device A (110) may include a resistive system where anelectrical current runs through two layers which make contact at spotson the touch screen interface (115) that are touched. The coordinates ofthe contact points or contact spots are matched with an image beingdisplayed to determine what portion of the image is being touched by theuser. In another example, device A (110) may include a capacitive systemwith a layer that stores electrical charge, a part of which istransferred to a user where the user touches the touch screen interface(115). In another example, device A (110) may include a surface acousticwave system with two transducers with an electrical signal being sentfrom one transducer to another transducer. Any interruption of theelectrical signal (e.g., due to a user touch) may be used to detect acontact point on the touch screen interface (115). For example, device A(110) may be configured to first detect that an initial user touch on avisual representation, of the data, displayed on the touch screeninterface.

In an embodiment, device A (110) may include hardware configured forreceiving data, transmitting data, or otherwise communicating with otherdevices in the system (100). For example, device A (110) may includefunctionality to transmit any content selected by a flick motion inresponse to detecting the flick motion. Content selected by a flickmotion may be referred to herein as flicked content or content beingflicked. In another example, device A (110) may include functionality totransmit information (may be referred to herein and used interchangeablywith metadata ) associated with the flicked content (in addition to theflicked content or instead of the flicked content) in response todetecting the flick motion. In an embodiment, device A (110) may includefunctionality to transmit any flicked content for display by anotherdevice. For example, device A (110) may transmit flicked content to atelevision set for display on the television set.

In an embodiment, device A (110) may include one or more of: Read OnlyMemory (ROM) (206), a Central Processing Unit (CPU), Random AccessMemory (RAM), Infrared Control Unit (ICU), a key pad scan, a key pad,Non-Volatile Memory (NVM), one or more microphones, a general purposeinput/output (GPIO) interface, a speaker/tweeter, a keytransmitter/indicator, a microphone, a radio, an Infrared (IR) blaster,a network card, a display screen, a Radio Frequency (RF) Antenna, aQWERTY keyboard, a network card, network adapter, network interfacecontroller (NIC), network interface card, Local Area Network adapter,Ethernet network card, and/or any other component that can receiveinformation over a network. In an embodiment, device A (110) may beconfigured to communicate with one or more devices through wired and/orwireless segments. For example, the device A (110) may communicatewirelessly over one or more of: radio waves (e.g., Wi-Fi signal,Bluetooth signal), infrared waves, over any other suitable frequency inthe electro-magnetic spectrum, over a network connection (e.g.,intranet, internet, world wide web, etc.), or through any other suitablemethod.

In an embodiment, device B (120) with touch screen interface (125) anddevice C (130) with display screen (132) and physical interface (134)represent other example devices that may be used concurrently within thesystem (100). Device B (120) and device C (130) may or may not includesimilar components as device A (110). For example, device C (130) mayinclude a display screen (132) for displaying output and a separatephysical interface (134) (e.g., physical buttons) for receiving inputinstead of a touch screen interface (115) as included in device A (110).Device B (120) and device C (130) may include some similar functionalityas device A (110). Device B (120) may be configured to transmit data forstorage or display in response to detecting a flick motion. Device C(130) may be configured to transmit data for storage or display inreceiving a user command through the physical interface (134).

In an embodiment, a shared display device (140) generally represents anydisplay device which may include functionality to receive input from oneor more sources (e.g., device A (110), device B (120), device C (130)and/or other sources (not shown)) via a direct connection (wired orwireless), or over a network (e.g., intranet, internet, etc.). Examplesof the shared display device (140) may include but are not limited tocomputers, notebooks, liquid crystal displays, plasma displays, tablets,kiosks, mobile devices, cell phones, smart phones, e-book readers,televisions, or any other device which may display content. The shareddisplay device (140) may display any type of data received from anysource. The shared display device (140) may include functionality toreceive, process, and/or manage the content received from multiplesources. The shared display device (140) may be managed by a designatedmanagement device (not shown). The shared display device (140) may bemanaged by one of the mobile devices (e.g., device A (110), device B(120), or device C (130)). For example, content displayed on the shareddisplay device (140) may be managed by the device from which the shareddisplay device (140) received the content, or from which the shareddisplay device (140) received a reference to the content. The shareddisplay device (140) may include functionality to receive content frommultiple devices for display. For example, the shared display device(140) may include functionality to receive different content files fromdifferent content sources and queue all of the received content fordisplay. The shared display device (140) may be configured toautomatically display any received content. One or more embodiments mayinclude non-shared display devices (not shown) used with or instead ofthe shared display device (140). For example, the system (100) mayinclude display devices which accept content for display from a singlecontent source at any given time. Device A (110), device B (120), anddevice C (130) may themselves be display devices that receive content,or references to content which can be obtained based on the references.

In an embodiment, the data repository (150) generally represents anydata storage device or data storage component within a device. Examplesof the data repository (150) include servers (e.g., local servers, webservers, etc.), peer to peer systems, back-up storage, discs, volatilememory, non-volatile memory, flash drives, kiosks, etc. In anembodiment, the data repository (150) may represent a collection ofsystems that can be searched. In an embodiment, the data repository(150) may be queried for content. For example, content that is selectedat a first device using a flick motion may be obtained by a seconddevice directly from the data repository (150) using references, to thecontent, received from the first device.

3.0 Detecting a Flick Motion

FIG. 2 illustrates a flow diagram for detecting a flick motion. One ormore of the steps described below may be omitted, repeated, and/orperformed in a different order. Accordingly, the specific arrangement ofsteps shown in FIG. 2 should not be construed as limiting the scope ofthe invention.

In one or more embodiments, detecting a flick motion may includedetecting interface contact at an initial location on a touch screeninterface (Step 202). The initial contact on the touch screen interfacemay be made with a user finger, a stylus, or any other item which may beused to perform a flick motion on a touch screen interface. The initialcontact with the touch screen interface may involve a quick touch at theinitial location or a touch that is maintained at the initial locationfor any period of time (e.g., a millisecond, a second, two seconds,etc.). The initial contact with the touch screen interface may be briefas it may be made by a finger already moving in a direction. Forexample, a finger moving in the air without making contact, and at somepoint during the moving making the initial contact with a portion of thetouch screen interface and continuing in the direction while maintainingcontact with the touch screen interface.

In an embodiment, the initial contact as referred to herein may includea finger (or other item) being close enough to a touch screen interfacethat the touch screen interface detects the finger. For example, whenusing a device including a capacitive system with a layer that storeselectrical charge, a part of the electrical charge may be transferred toa user where the user touches the touch screen interface or where a usersimply hovers close to the touch screen interface. Accordingly, initialcontact or maintained contact as referred to herein may include a userhovering a finger or other item over a touch screen interface.

In an embodiment, the initial contact on the touch screen interfaceselects the content that is to be flicked. For example, the initialcontact may select an icon displayed on the touch screen interface at alocation on the touch screen interface corresponding to the initialcontact. In another example, the initial contact may select a video thatis being played on the touch screen interface. For example, the initialcontact may select any portion of the touch screen interface on whichthe video is being played. In an embodiment, a list of files may bedisplayed and the initial contact may select text corresponding to aparticular file.

In one or more embodiments, detecting a flick motion may further includedetecting interface contact at additional locations, on the touch screeninterface, in a chronological sequence away from the initial location(Step 204). For example, interface contact may be detected continuouslyalong a path away from a location of the initial contact point on thetouch screen interface. The contact along a path away from the locationof the initial contact point may be referred to herein as a slidingmotion. In one or more embodiments, a speed of the sliding motion or adirection of the sliding motion may be determined. For example, contactat two or more locations on the interface, such as the initial contactpoint and a second point along the path of the sliding motion, may beused to determine a direction and/or a speed of the sliding motion.

In one or more embodiments, detecting a flick motion includes detectinga loss of interface contact (e.g., when interface contact is no longerdetected on the touch screen) while the sliding motion is still beingperformed by a user (Step 206). A period of time during which contactwas made with the release location (the last contact point on the touchscreen interface before contact was released) may be used to determinewhether contact with the touch screen interface was released while auser was performing the sliding motion. For example, if the usermaintained contact at the release location for a period of time that wasequivalent to contact at other locations along the sliding motion, adetermination may be made that contact with the touch screen interfacewas released while a user was still moving his finger. In an embodiment,a flick motion may refer to contact with the touch screen interfaceduring which, after the sliding motion is initiated, there is no pausein the sliding motion until after contact with the touch screeninterface has been released.

FIGS. 3A and 3B illustrate an example of a flick motion. As shown inFIG. 3A, a user first touches an initial location L1 on a touch screeninterface (315) of device X (310). As shown in FIG. 3B, the user thenslides the finger, while maintaining contact with the touch screeninterface (315) toward location L2 on the touch screen interface (315).At location L2, the user continues moving the finger in a similar oridentical direction, however, releases contact with the touch screeninterface (315) at location L2. Accordingly, the user makes contact withthe touch screen interface (315) at location L1 and maintains contactwith the touch screen interface (315) until location L2 is reached, atwhich point, the user releases contact with the touch screen interface(315).

FIG. 3C illustrates an example of a user selecting an item from a menuand flicking the item to send the item to another device. FIG. 3Cincludes a phone 350 displaying media files 355 on a touch screeninterface. The media files include “Europe Video 370”, “Baby Video 375”,“History Slides 360”, and “John Pics Soccer 365”. Of the availablechoices, a user hovers a finger over John Pics Soccer 365 until thephone 350 shows a visual indication of selection. For example, the phonemay indicate selection by highlighting the icon John Pics Soccer 365 ordisplaying concentric circles around the icon John Pics Soccer 365. OnceJohn Pics Soccer 365 is selected, the user flicks the content by movingtoward location L3 and lifting the finger away from the phone 350 whilemoving toward location L3.

4.0 Transmitting Content in Response to Detecting a Flick Motion

In one or more embodiments, content selected by a flicked motion (e.g.,flicked content) on a first device is transmitted to a second device.The flicked content may be transmitted immediately in response todetecting the flick motion. Transmitting flicked content may includesending a file comprising the flicked content to one or more otherdevices using a direct wired or wireless connection with a receivingdevice or sending the file including the flicked content over a networkthrough intermediate devices. For example, flicked content may be sentto another device over a Bluetooth connection or another device over anetwork using an internet or an intranet connection. Sending flickedcontent, as referred to herein, may include sending a reference to theflicked content. For example, a sending device may send a reference tothe flicked content to a receiving device, which may then obtain theflicked content (e.g., from a data repository). In an embodiment anytype of metadata may be sent with the flicked content or instead of theflicked content in response to detecting a flick. For example, a previewfile or a link to preview the flicked content may be sent. When a videois flicked, particular frames may be selected from the video and sentinstead of sending the entire video. In response, the recipient may thenrequest the entire video or otherwise access the entire video.

FIG. 3D illustrates an example screen shot displaying a selectable setof videos (e.g., video A (384) to video N (389)) and a preview screen(382) displayed on a video monitor (380). A device may detect theselection of a video (e.g., video A (384) to video N (389)) and displayinformation about the selected video in preview screen (382). Thisinformation may include text, a trailer, screen shots, etc. A user maythen select a particular video by performing a flick motion initiated onthe preview screen (382). For example, a user may select a thumbnailrepresenting a video or a thumbnail representing a frame from the video.The video monitor may detect the flick and determine the video fromvideo A (384) to video N (389) that was being previewed and send thevideo that was being previewed to a destination device.

In an example, the video monitor (380) may be a component of a tabletdisplaying the preview screen (382). The tablet may generate a displaybased on information indicating available content (e.g., video A (384)and video N (389)). The information indicating the available content maybe received from a set-top box, a video recorder, a server, a mediamanagement device, or any other device. In an embodiment, the tablet mayreceive the display screen from the video recorder. The video recordermay generate a screen shot of available content based on content storedon the video recorder or content accessible (e.g., over a network) bythe video recorder. In another example, the video recorder may obtainthe screen shot of available content from a server.

FIG. 3E illustrates an example of one or more packets that are sent froma first device which detects a flick to a receiving device. The packetmay include header information (390) about the packet, flicked content(392), and metadata (394). In an embodiment, flicked content andmetadata associated with the flicked content may be sent in separatepackets.

In an embodiment, one or more devices may be selected for receivingflicked content before the flick motion is initiated. For example, auser may select one or more contacts from a phonebook for flickingcontent. A user may create a group on a social networking website whichincludes all the recipients of flicked content for that user. Thedevices associated with the identified recipients may then receive theflicked content. In another example, other users may subscribe to aparticular user’s flicked content. Accordingly, all content flicked bythe particular user may be sent to all subscribing users. Any othermethods of creating groups of recipients may be used. Accordingly, therecipients of flicked content may be selected by the person flicking thecontent or may be selected by a system (e.g., using groups etc.). Forexample, regardless of the direction in which the content is flicked,the receiving device for the flicked content may be selected before theflick motion is performed.

In an embodiment, one or more devices may be selected for receivingflicked content by the flick motion itself. A direction in which theflick is performed may indicate the recipient of the flicked content.The direction may be determined by the initial contact location and asubsequent contact location on a touch screen interface of the device.For example, a device may be configured to transmit content to aparticular receiving device Y if the content is flicked to the left. Inanother example, a device may be configured to transmit content to alldevices within a particular group G if the content is flicked to the topright of the user interface screen. Any number of preset receivingdevices or groups of receiving devices may be configured based on thedirection of the flick.

In one or more embodiments, the direction of the flick may be combinedwith other factors to identify the receiving device. For example, in aroom of devices, a receiving device of the flicked content, on a sendingdevice, may be determined based on the physical location of thereceiving device. Using any available technology (e.g., infrared,Bluetooth, 802.11x wireless, etc.), a location of all devices relativeto the sending device may be identified (e.g., by triangulation usingtwo or more different communications signals, signal strength, etc.).Thereafter, a particular direction of the flick on the touch screeninterface may be matched with one or more devices in that particulardirection from the sending device. A user interface may then bedisplayed on the touch screen that identifies devices in range and eachdevice’s relative position.

FIG. 4 illustrates an example of a direction-based selection of areceiving device in accordance with one or more embodiments. If asending device L (410) detects a flick motion with direction (450) tothe right, the device(s) (e.g., device M (430)) in that direction may beidentified as receiving devices, while other devices (e.g., device N(420) and device K (440)) may not be identified as receiving devices. Anexample range (indicated by dotted lines) using an angle in bothdirections from the direction of the flick is used to illustratedirection and devices within that direction. However, the devices may beconfigured using any mechanism or implementation for evaluating whethera particular device is within the direction of the flick motion.

If a single device is in the direction of the flick, that single devicemay be identified as the receiving device. The single device may beoperated by another user or may simply be a display device (e.g., aliquid crystal display). If multiple devices are identified in thedirection of the flick, the flicked content may be sent to all of themultiple devices or to one or more specific devices found in thatdirection. For example, a user may be prompted to select the device froman identified set of devices. In another example, the device that iscomes closest to an imaginary vector in the direction of the flick, fromthe sending device, may be selected.

In an embodiment, the direction of the flick motion may be combined withrepresentations of devices on the touch screen interface to selectreceiving devices. FIG. 5 illustrates another example of adirection-based selection of a receiving device in accordance with oneor more embodiments. As illustrated in FIG. 5 , a flick motion may beinitiated at location L1 toward location L3 with a contact release pointof L2. Accordingly, although a finger (or other item) performing theflick motion makes contact with the touch screen interface (515) ondevice D (510) from location L1 to location L2, the direction of theflick is in the direction of location L3. A device, represented by anicon displayed at location L3, may then be selected as the receivingdevice because the flick motion is in the direction of the icon. Devicesrepresented by icons located at location L4 or location L5 may not beselected as recipients for the flicked content since they are not in thedirection of the flick motion.

5.0 Displaying Content in Response to Detecting a Flick Motion

In one or more embodiments, content may be displayed on a receivingdevice in response to detecting a selection of the content using a flickmotion on a sending device. Content may be selected using a flickmotion, as described above. Furthermore, content, or a reference to thecontent, may be sent to one or more receiving devices, as describedabove.

In one or more embodiments, flicked content may be automaticallydisplayed by a receiving device. The flicked content may be displayed inresponse to a device detecting a flick motion that selects content andthe device sending the flicked content with display instructions to oneor more receiving devices. In an embodiment, the receiving device may bea television or other display device which is configured to display anyreceived content.

In an embodiment, a received device may display flicked content startingwith a particular start position specified by the sending device. Forexample, a user may flick a video being played on a cellular phone. Thecellular phone may send the flicked content to a television and aplaying position of the video or a frame that was displayed when theflick was detected. A television receiving the flicked content may thenplay the video by starting the playing of the video at the frame orplaying position received from the cellular phone.

In one or more embodiments, direction of a flick or speed of a flickwhich selects content may be used to determine whether the content is tobe sent and stored or whether the content is to be sent and displayed bya receiving device. For example, if a receiving device is selected inadvance, a flick to the right may signify sending content for storing onthe receiving device and a flick to the left may signify sending contentfor displaying on the receiving device. In an embodiment, a direction ofthe flick may be used to select the receiving device and select whetherthe content is sent for storage or display on the receiving device. Forexample, a flick motion toward the top right of a touch screen interfacemay signify a command for sending the content to a receiving device thatis to the right of the sending device and storing the content at thatreceiving device. Further a flick motion toward the bottom right of thetouch screen interface may signify a command for sending the content tothe receiving device that is to the right of the sending device anddisplaying the content at that receiving device.

In one or more embodiments, flicked content sent to a particularreceiving device may be displayed in an order in which the content wasreceived. For example, multiple users each operating a respective devicemay flick content to a shared resource such as a television. Thetelevision (or a management device) may then display the content in theorder in which it was received.

In one or more embodiments, a receiving device may display contentaccording to a priority scheme. For example, flicked content fromdevices associated with high priority users may be displayed first. Inanother example, one or more users may be able to manage the displayqueue of content received by the receiving device. The user may changethe order of items within the display queue, remove items from thedisplay queue, or add items to the display queue.

In one or more embodiments, each time a receiving device receivesflicked content, the receiving device stops playing any other content ifthe receiving device is playing other content, and displays the receivedflicked content. Accordingly, each time a user flicks content to thedisplay device, the display device immediately plays that flickedcontent (e.g., by discarding previously flicked content).

In an embodiment, a display screen on a shared display device is splitup into different sections. For example, the display screen may includetwo or four sections, where each section displays content flicked to thedisplay screen by a particular device. If four users, each with adevice, flick content to a shared display screen with four sections,each user may have their own section for displaying content that isflicked by that user. In turn, each user has control over the playbackof the content played in that section (e.g., using trickplay functions -fast-forward, pause, reverse, play, frame step, etc.). In one example, auser on a cellular phone viewing a video streamed online may select thevideo with a flick. The cellular phone may then send a link to the videoto a television (or device in communication with the television). Thetelevision through a connected network card may download the video andplay the video. The user may then control the playback of the videobeing played on television with the cellular phone. The system may, bydefault, provide playback control from the source of the video (thecellular phone in this example). Furthermore, the user may transferplayback control to another device (e.g. a tablet) within the same room.The user may also transfer playback control to a simple remote controlconfigured to communicate with the television.

In one or more embodiments, a sending device may be used by an operatorto create playlists of different content files or establish a particularsequence in which different content is to be played. The playlist orsequence of content may then be flicked (or sent in another manner) to areceiving device (e.g., a shared display device) for display.

In an embodiment, the sending device which detected the flicked contentand sent the flicked content (or a reference to the flicked content),may then control the display of the flicked content on the receivingdevice. For example, when a user uses a flick motion, on a particularsending device, to select a link to an online video, the display devicemay obtain the video (directly from the sending device or from anotherdevice) and display the video. The controls (e.g., pause, stop, play,forward, rewind, etc.) for that video may then be operated by thatparticular sending device. The controls for operating the shared displaydevice may change dynamically depending on the source of the contentbeing displayed on the shared display device. The device which providedthe content to the shared display device may control the displayedcontent. In an embodiment, the device which provided the content to theshared display device may transfer control to another device. In anembodiment, all devices communicatively coupled to the shared displaydevice may be configured to control the display of content on the shareddisplay device.

6.0 Example Embodiments

In an embodiment, a flick motion is detected on a touch screen interfaceof a first device. In response to detecting the flick motion: dataassociated with the flick motion is identified and transmitted to asecond device.

In an embodiment, the second device may be selected from a plurality ofdevices based on a direction of the flick motion. For example, detectingthe second device may be based on detecting that the flick motion was ina direction of a visual representation of the second device, on thetouch screen interface, where the user performing the flick motion doesnot touch the visual representation of the second device on the touchscreen.

In an embodiment, the second device, which received the flicked content,may store, display, or perform another function based on the directionof the flick motion used for selecting the flicked content. In anembodiment, sending the flicked content involves sending a reference tothe flicked content whereby the receiving device may obtain the flickedcontent based on the reference to the flicked content.

In an embodiment, detecting the flick motion may include detecting aninitial user touch on a visual representation of the data, displayed onthe touch screen interface; detecting a movement of the user touch alongthe touch screen interface away from a location of the initial usertouch; while the movement is being detected, detecting a release of theuser touch.

In an embodiment, a first device which sends the flicked content to asecond device controls one or more playback operations for displayingthe content on the second device.

In one or more embodiments, a set of receiving devices for the flickedcontent are based on an associated set of users. The set of users may beselected from a larger group of users and the flicked content may besent to the set of receiving devices associated with the set of users.The set of users may be selected by a user of the sending device. Theset of receiving devices for the flicked content may be selected basedon detection by the sending device within the same sub-network.

In one or more embodiments, a method includes detecting a first flickmotion on a first touch screen interface of a first device; in responseto detecting the first flick motion, causing display of at least aportion of first content associated with the first flick motion on ashared display device; subsequent to detecting a first flick motion,detecting a second flick motion on a second touch screen interface of asecond device; in response to detecting the second flick motion, causingdisplay of second content, associated with the second flick motion, onthe shared display device, the display of the second content beingsubsequent to the display of at least the portion of the first content.

The method may further include for each content of a plurality ofcontent, queuing that content for display on a shared display device ata position, in a queue, that is based on a time corresponding todetection of a flick motion associated with that content.

The method may further include for each content in a plurality ofcontent, queuing that content for display on a shared display device inresponse to detecting a flick motion associated with that content, thatcontent being queued at a queue position based on a priority levelassociated with that content.

Although specific components are recited herein as performing the methodsteps, in other embodiments agents or mechanisms acting on behalf of thespecified components may perform the method steps. Further, althoughsome aspects of the invention are discussed with respect to componentson a system, the invention may be implemented with componentsdistributed over multiple systems. Embodiments of the invention alsoinclude any system that includes the means for performing the methodsteps described herein. Embodiments of the invention also include acomputer readable medium with instructions, which when executed, causethe method steps described herein to be performed.

7.0 Hardware Overview

According to one embodiment, the techniques described herein areimplemented by one or more special-purpose computing devices. Thespecial-purpose computing devices may be hard-wired to perform thetechniques, or may include digital electronic devices such as one ormore application-specific integrated circuits (ASICs) or fieldprogrammable gate arrays (FPGAs) that are persistently programmed toperform the techniques, or may include one or more general purposehardware processors programmed to perform the techniques pursuant toprogram instructions in firmware, memory, other storage, or acombination. Such special-purpose computing devices may also combinecustom hard-wired logic, ASICs, or FPGAs with custom programming toaccomplish the techniques. The special-purpose computing devices may bedesktop computer systems, portable computer systems, handheld devices,networking devices or any other device that incorporates hard-wiredand/or program logic to implement the techniques.

For example, FIG. 6 is a block diagram that illustrates a computersystem 600 upon which an embodiment of the invention may be implemented.Computer system 600 includes a bus 602 or other communication mechanismfor communicating information, and a hardware processor 604 coupled withbus 602 for processing information. Hardware processor 604 may be, forexample, a general purpose microprocessor.

Computer system 600 also includes a main memory 606, such as a randomaccess memory (RAM) or other dynamic storage device, coupled to bus 602for storing information and instructions to be executed by processor604. Main memory 606 also may be used for storing temporary variables orother intermediate information during execution of instructions to beexecuted by processor 604. Such instructions, when stored innon-transitory storage media accessible to processor 604, rendercomputer system 600 into a special-purpose machine that is customized toperform the operations specified in the instructions.

Computer system 600 further includes a read only memory (ROM) 608 orother static storage device coupled to bus 602 for storing staticinformation and instructions for processor 604. A storage device 610,such as a magnetic disk or optical disk, is provided and coupled to bus602 for storing information and instructions.

Computer system 600 may be coupled via bus 602 to a display 612, such asa cathode ray tube (CRT), for displaying information to a computer user.An input device 614, including alphanumeric and other keys, is coupledto bus 602 for communicating information and command selections toprocessor 604. Another type of user input device is cursor control 616,such as a mouse, a trackball, or cursor direction keys for communicatingdirection information and command selections to processor 604 and forcontrolling cursor movement on display 612. This input device typicallyhas two degrees of freedom in two axes, a first axis (e.g., x) and asecond axis (e.g., y), that allows the device to specify positions in aplane.

Computer system 600 may implement the techniques described herein usingcustomized hard-wired logic, one or more ASICs or FPGAs, firmware and/orprogram logic which in combination with the computer system causes orprograms computer system 600 to be a special-purpose machine. Accordingto one embodiment, the techniques herein are performed by computersystem 600 in response to processor 604 executing one or more sequencesof one or more instructions contained in main memory 606. Suchinstructions may be read into main memory 606 from another storagemedium, such as storage device 610. Execution of the sequences ofinstructions contained in main memory 606 causes processor 604 toperform the process steps described herein. In alternative embodiments,hard-wired circuitry may be used in place of or in combination withsoftware instructions.

The term “storage media” as used herein refers to any non-transitorymedia that store data and/or instructions that cause a machine tooperation in a specific fashion. Such storage media may comprisenon-volatile media and/or volatile media. Non-volatile media includes,for example, optical or magnetic disks, such as storage device 610.Volatile media includes dynamic memory, such as main memory 606. Commonforms of storage media include, for example, a floppy disk, a flexibledisk, hard disk, solid state drive, magnetic tape, or any other magneticdata storage medium, a CD-ROM, any other optical data storage medium,any physical medium with patterns of holes, a RAM, a PROM, and EPROM, aFLASH-EPROM, NVRAM, any other memory chip or cartridge.

Storage media is distinct from but may be used in conjunction withtransmission media. Transmission media participates in transferringinformation between storage media. For example, transmission mediaincludes coaxial cables, copper wire and fiber optics, including thewires that comprise bus 602. Transmission media can also take the formof acoustic or light waves, such as those generated during radio-waveand infra-red data communications.

Various forms of media may be involved in carrying one or more sequencesof one or more instructions to processor 604 for execution. For example,the instructions may initially be carried on a magnetic disk or solidstate drive of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to computer system 600 canreceive the data on the telephone line and use an infra-red transmitterto convert the data to an infra-red signal. An infra-red detector canreceive the data carried in the infra-red signal and appropriatecircuitry can place the data on bus 602. Bus 602 carries the data tomain memory 606, from which processor 604 retrieves and executes theinstructions. The instructions received by main memory 606 mayoptionally be stored on storage device 610 either before or afterexecution by processor 604.

Computer system 600 also includes a communication interface 618 coupledto bus 602. Communication interface 618 provides a two-way datacommunication coupling to a network link 620 that is connected to alocal network 622. For example, communication interface 618 may be anintegrated services digital network (ISDN) card, cable modem, satellitemodem, or a modem to provide a data communication connection to acorresponding type of telephone line. As another example, communicationinterface 618 may be a local area network (LAN) card to provide a datacommunication connection to a compatible LAN. Wireless links may also beimplemented. In any such implementation, communication interface 618sends and receives electrical, electromagnetic or optical signals thatcarry digital data streams representing various types of information.

Network link 620 typically provides data communication through one ormore networks to other data devices. For example, network link 620 mayprovide a connection through local network 622 to a host computer 624 orto data equipment operated by an Internet Service Provider (ISP) 626.ISP 626 in turn provides data communication services through the worldwide packet data communication network now commonly referred to as the“Internet” 628. Local network 622 and Internet 628 both use electrical,electromagnetic or optical signals that carry digital data streams. Thesignals through the various networks and the signals on network link 620and through communication interface 618, which carry the digital data toand from computer system 600, are example forms of transmission media.

Computer system 600 can send messages and receive data, includingprogram code, through the network(s), network link 620 and communicationinterface 618. In the Internet example, a server 630 might transmit arequested code for an application program through Internet 628, ISP 626,local network 622 and communication interface 618.

The received code may be executed by processor 604 as it is received,and/or stored in storage device 610, or other non-volatile storage forlater execution.

In an embodiment, an apparatus is a combination of one or more hardwareand/or software components described herein. In an embodiment, asubsystem for performing a step is a combination of one or more hardwareand/or software components that may be configured to perform the step.

8.0 Extensions and Alternatives

In the foregoing specification, embodiments of the invention have beendescribed with reference to numerous specific details that may vary fromimplementation to implementation. Thus, the sole and exclusive indicatorof what is the invention, and is intended by the applicants to be theinvention, is the set of claims that issue from this application, in thespecific form in which such claims issue, including any subsequentcorrection. Any definitions expressly set forth herein for termscontained in such claims shall govern the meaning of such terms as usedin the claims. Hence, no limitation, element, property, feature,advantage or attribute that is not expressly recited in a claim shouldlimit the scope of such claim in any way. The specification and drawingsare, accordingly, to be regarded in an illustrative rather than arestrictive sense.

1-45. (canceled)
 46. A method comprising: generating a media contentitem, from a source, for display at a first device; while generating fordisplay the media content item at the first device, in response to aselection of a second device via a user interface of the first device:causing the second device to play the media content item; selecting,based on the source, a set of control elements for operating the seconddevice; and generating, on the first device, the selected set of controlelements.
 47. The method of claim 46, wherein the media content item isa first media content item, the source is a first source, the selectionof a second device is a first selection of a second device, and the setof control elements is a first set of control elements, furthercomprising: generating a second media content item from a second sourcefor display at the first device; while generating for display the secondmedia content item at the first device, in response to a secondselection of the second device via the user interface of the firstdevice: causing the second device to play the second media content item;selecting, based on the second source, a second set of control elementsfor operating the second device; and generating, on the first device,the second set of control elements.
 48. The method of claim 46, whereinthe selection comprises detecting a motion on a touch screen interfaceof the first device in a direction of the second device.
 49. The methodof claim 48, wherein the motion comprises a flick motion.
 50. The methodof claim 46, wherein the selection further comprises: detecting a motionon a touch screen interface of the first device that was in a directionof a visual representation of the second device on the user interface;wherein during the motion, the motion is proximate to but does not touchthe visual representation of the second device on the user interface.51. The method of claim 46, wherein the set of control elementscomprises user interface features for one or more of pausing, stopping,playing, forwarding, and rewinding the media content that is playing onthe second device.
 52. The method of claim 46, wherein the userinterface of the first device is a touch screen.
 53. The method of claim46, wherein the second device is a television.
 54. A system comprising:input/output circuitry configured to: generate a media content item,from a source, for display at a first device; control circuitryconfigured to: while the input/output circuitry generates for displaythe media content item at the first device, in response to a selectionof a second device via a user interface of the first device: cause thesecond device to play the media content item; select, based on thesource, a set of control elements for operating the second device; andgenerate, on the first device, the selected set of control elements. 55.The system of claim 54, wherein the media content item is a first mediacontent item, the source is a first source, the selection of a seconddevice is a first selection of a second device, and the set of controlelements is a first set of control elements, wherein the input/outputcircuitry is further configured to: generate a second media content itemfrom a second source for display at the first device; and wherein thecontrol circuitry is further configured to: while generating for displaythe second media content item at the first device, in response to asecond selection of the second device via the user interface of thefirst device: cause the second device to play the second media contentitem; select, based on the second source, a second set of controlelements for operating the second device; and generate, on the firstdevice, the second set of control elements.
 56. The system of claim 54,wherein the control circuitry is configured to detect the selection bydetecting a motion on a touch screen interface of the first device in adirection of the second device.
 57. The system of claim 56, wherein themotion comprises a flick motion.
 58. The system of claim 54, wherein thecontrol circuitry is further configured to detect the selection by:detecting a motion on a touch screen interface of the first device thatwas in a direction of a visual representation of the second device onthe user interface; wherein during the motion, the motion is proximateto but does not touch the visual representation of the second device onthe user interface.
 59. The system of claim 54, wherein the set ofcontrol elements comprises user interface features for one or more ofpausing, stopping, playing, forwarding, and rewinding the media contentthat is playing on the second device.
 60. The system of claim 54,wherein the user interface of the first device is a touch screen. 61.The system of claim 54, wherein the second device is a television.